package org.example.arraylist01;

import java.util.ArrayList;

/**
 * 集合添加元素的第二种写法
 *  匿名内部类:
 *     new 父类或父接口(){
 *       //重写父类的或父接口的方法
 *     };
 */
/*
//集合双大括号初始化相当于以下代码
class ArrayList$1 extends ArrayList<String>{
    {
        //构造代码块
        add("abc");
        add("def");
    }
    //继承了ArrayList的toString方法
}
ArrayList<String> al = new ArrayList$1(); //当new对象的时候,会先走构造代码块,构造代码块中有添加元素的方法
                                          //相当于把元素添加到集合中

*/

public class ArrayListDemo02 {
    public static void main(String[] args) {
        //method01();
        //method02();
    }

    private static void method02() {
        //双大括号形式初始化集合
        ArrayList<String> al = new ArrayList<String>() {{
            add("abc");
            add("def");
        }};
        System.out.println(al);
    }

    private static void method01() {
        ArrayList<String> al = new ArrayList<>();
        al.add("abc");
        al.add("def");
        System.out.println(al);
    }
}
